"""
激活层
- 激活函数 为了增加网络的非线性 进而提升网络的表达能力
- ReLU函数 、Leakly ReLU函数、ELU函数等
- torch.nn.ReLU(inplace=True)

BathNorm层
- 通过一定的规范化手段，把每层神经网络任意神经元这个输入值的分布强行拉回到均值方差为0方差为1的标准正太分布
- BatchNorm是归一化的一种手段、他会减小图像之间的绝对差异，突出相对差异，加快训练速度
- 不适用的问题 image-to-image以及对噪声敏感的任务
- nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)

全连接层
- 连接所有的特征，将输出值送给分类器（如softmax分类器）
    - 对千层的特征进行一个加权和，（卷积层是将数据输入映射到隐层特征空间）将特征空间通过线性变换映射到演变标记空间 也就是label
    - 可以通过 1x1卷积 + global average pooling代替
    - 可以通过全连接层参数冗余
    - 全连接层参数和尺寸相关
- nn.Linear(in_features, out_features, bias)

Dropout层
- 在不同的训练过程中随机扔掉一部分神经元
- 测试过程中不使用随机失活，所有的神经元都激活
- 为了防止或减轻

损失层
- 损失层 设置一个损失函数用来比较网络的输出和目标值，通过最小化损失来驱动网络的训练
- 网络的损失通过向前操作计算，网络参数相对于损失函数的梯度则通过反向操作计算
- 分类问题损失
    - nn.BCELoss, nn.CrossEntropyLoss
- 回归问题损失
    - nn.L1Loss, nn.MSELoss, nn.SmoothL1Loss等等

"""